/**
 线程死锁：再一个同步方法中调用了另一个对象的同步方法，可能产生死锁
 下面案例2个类互相调用各自的同步方法，就发生阻塞的情况。
 */
/*
package 第十章_多线程与并发;

import java.beans.Customizer;

public class U10_L7_线程死锁 {
    public static void main(String [] args){
        new DeadThread();
    }
}

class Customer{
    public synchronized void say(Waiter w){
        System.out.println("顾客说:先吃饭再买单！");
        w.doService();
    }
    public synchronized  void doService(){
        System.out.println("同意了，先买单再吃饭！");
    }
}
class Waiter{
    public synchronized void say(Customer c){
        System.out.println("服务员说:先买单再吃饭！");
        c.doService();
    }
    public synchronized  void doService(){
        System.out.println("同意了，吃完饭再买单！");
    }

}
class DeadThread implements Runnable{
    Customer c=new Customer();
    Waiter w=new Waiter();
    //构造
    public DeadThread(){
        new Thread(this).start();
        w.say(c);
    }
    @Override
    public void run() {
        c.say(w);
    }
}
 */